Sometimes we need to know the “real” closing date of tickets, for different reasons: workflows with bad config (Resolve Issue screen missing in final statuses…), two Resolve Issue screens in Resolved and Closed statuses, etc.
And, as always, we have a trick using the plugin Scriptrunner!
It’s very simple, just create a Scripted custom field and use a configuration like this:
And use and modify this code:
import com.atlassian.jira.component.ComponentAccessor import java.math.* import java.util.Date def changeHistoryManager = ComponentAccessor.getChangeHistoryManager() def done = changeHistoryManager.getChangeItemsForField(issue, "status").reverse().find { it.toString == "Done" }?.getCreated() def closed = changeHistoryManager.getChangeItemsForField(issue, "status").reverse().find { it.toString == "Closed" }?.getCreated() def discarded = changeHistoryManager.getChangeItemsForField(issue, "status").reverse().find { it.toString == "Discarded" }?.getCreated() def doneTime = done?.getTime() def closedTime = closed?.getTime() def discardedTime = discarded?.getTime() def lasttime = null; if ( closedTime > doneTime && closedTime > discardedTime) lasttime = closedTime else if ( doneTime > closedTime && doneTime > discardedTime) lasttime = doneTime else if ( discardedTime > closedTime && discardedTime > doneTime) lasttime = discardedTime if ( lasttime == null) return null def date = new Date((long)lasttime); return date
Remember, the searcher must be “Date Time Range picker”
finally place the field on all screens to see this date working!
By MrAddon
One thought on “Example of script field in Jira to know the Closing date”